package com.hsl.housaileibot001.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hsl.housaileibot001.model.InterviewQuestion;
import com.hsl.housaileibot001.model.dto.QuestionImportDTO;
import com.hsl.housaileibot001.model.vo.TagVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 面试题目服务接口
 */
public interface InterviewQuestionService extends IService<InterviewQuestion> {

    /**
     * 批量导入面试题目
     *
     * @param questions 面试题目列表
     * @return 导入成功的数量
     */
    int batchImport(List<InterviewQuestion> questions);

    /**
     * 从Excel文件导入面试题目
     *
     * @param file Excel文件
     * @return 导入结果信息
     */
    String importFromExcel(MultipartFile file);

    /**
     * 批量导入面试题目（使用DTO）
     *
     * @param importDTOs 导入DTO列表
     * @return 导入成功的数量
     */
    int batchImportFromDTO(List<QuestionImportDTO> importDTOs);

    /**
     * 从Excel文件导入面试题目（使用DTO）
     *
     * @param file Excel文件
     * @return 导入结果信息
     */
    String importFromExcelWithDTO(MultipartFile file);

    /**
     * 分页查询面试题目（支持模糊搜索）
     *
     * @param page 分页对象
     * @param title 标题关键字
     * @param tags 标签列表（精确匹配，多个标签用逗号分隔）
     */
    void pageWithSearch(Page<InterviewQuestion> page, String title, String tags);

    /**
     * 分页获取标签列表（按标签数量降序）
     *
     * @param page 分页对象
     * @return 分页结果
     */
    IPage<TagVO> pageTagList(Page<TagVO> page);

    /**
     * 更新面试题状态
     * @param id 面试题ID
     * @param status 状态（如 ACTIVE/INACTIVE）
     * @return 是否成功
     */
    boolean updateStatus(Long id, String status);
}